package com.ywy.service;

import com.ywy.entity.Res;

import java.util.List;

/**
 * 资源Service接口
 *
 * @author ywy
 * @date 2022/8/18 18:43
 */
public interface ResService {
    /**
     * 分页查询资源信息
     *
     * @param res
     * @param pageNo
     * @param pageSize
     * @return
     */
    List<Res> list(Res res, Integer pageNo, Integer pageSize);

    /**
     * 分页查询资源信息，优先从缓存获取
     *
     * @param res
     * @param pageNo
     * @param pageSize
     * @return
     */
    List<Res> listFromCache(Res res, Integer pageNo, Integer pageSize);

    /**
     * 根据条件查询总记录数
     *
     * @param res
     * @return
     */
    long getTotal(Res res);

    /**
     * 根据id查询资源详细信息
     *
     * @param id
     * @return
     */
    Res getById(Integer id);

    /**
     * 根据id查询资源详细信息，优先从缓存中获取
     *
     * @param id
     * @return
     */
    Res getByIdFromCache(Integer id);

    /**
     * 添加或者修改资源
     *
     * @param res
     * @return
     */
    Res save(Res res);

    /**
     * 根据id删除资源
     *
     * @param id
     */
    void delete(Integer id);

    /**
     * 生成所有资源索引
     *
     * @return
     */
    boolean genAllIndex();

    /**
     * 失效链接更新状态
     * @param id
     * @return
     */
    int invalid(Integer id);
}
